package com.chaopei.dao.impl;

import com.chaopei.dao.ChildDao;
import com.chaopei.entity.Child;
import com.chaopei.utils.MyTools;

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Types;

/**
 * @Author Corday 天涯
 * @Date 2022/3/24 16:57
 */
public class ChildDaoImpl implements ChildDao {
    @Override
    public String insertChild(Child child) {
        Connection connection = MyTools.getConn();
        //声明存储过程操作对象
        CallableStatement cs = null;
        String info="";
        try {
            //调用存储过程的sql语句,格式要注意
            String sql="{call myproc(?,?,?)}";
            cs = connection.prepareCall(sql);
            //给存储过程传实参，传的是IN进参
            cs.setObject(1, child.getCname());
            cs.setObject(2,child.getAge());
            //第三个参数是出参，需要注册,说明它在数据库中已经定义的类型
            cs.registerOutParameter(3, Types.VARCHAR);
            //执行存储，获取返回值
            cs.execute();
            //获取返回值,可以传出参的位置号3或名称info
            info=(cs.getObject(3)).toString();
            //System.out.println("获取："+info);
            //关闭存储过程操作对象
            cs.close();
            MyTools.closeConn(connection);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return "获取："+info;
    }
}
